iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
0
Software Development

從Java進入AWS部署RESTful API的心路歷程系列 第 19

Day19-概觀(九)DyanmoDB低階API與資料類型

  • 分享至 

  • xImage
  •  

在開始實作DynamoDB操作的程式設計之前,這邊進一步了解一些DynamoDB介面及AWS SDK for JAVA,以便更清楚了解其中的工作與差異。

DynamoDB 低階 API

DynamoDB 低階 API

AWS SDK對於DynamoDB的操作提供三種類型的介面

  • Low-Level Interface
  • Document Interface
  • High-Level Interface

但是如下圖所示的架構中,我們先從底層的DynamoDB Low-Level Interface來了解一下當中的要素。

https://ithelp.ithome.com.tw/upload/images/20190929/20120911fXheTAIVdx.png

要求格式/回應格式

這邊或許不這麼重要,因為透過SDK都已經支援處理了,但是可以了解AWS服務大多透過HTTP(S)協定、表頭認證資訊、JSON資料傳輸格式等提供服務介面,也因此我們可能需要多了解JSON資料傳輸的特性及使用程式語言的支援狀況,以進一步小心處理不同型別的資料類型可能會遇到的問題。

資料類型描述項

DynamoDB有那些資料類型就是一定要知道的

  • S – 字串
  • N – 數字
  • B – 二進位
  • BOOL – 布林值
  • NULL – Null
  • M – 對應
  • L – 清單
  • SS – 字串集合
  • NS – 數字集合
  • BS – 二進位集合
    命名規則與資料類型

完整的資料類型細節可以在上面的AWS文件連結中瀏覽,按照分類來說可以為以下

  • 純量類型 – 純量類型只能代表一個值。純量類型包括數字、字串、二進位、布林值與 Null。
  • 文件類型 – 文件類型可代表具有巢狀屬性的複雜結構,如 JSON 文件中所示。文件類型為清單與映射。
  • 集合類型 – 集合類型可代表多個純量值。集合類型包括字串集、數字集與二進位集。

這些資料類型在SDK中實作對應Java的基本類型或物件,不過也因此在操作上會有所狀況,如NonNull的資料型別,這些在之後實作的部分再進行了解。

屬性命名自然也受DynamoDB保留字影響,就像之前遇到使用保留字名稱時會需要用#符號(表達式屬性名稱代換名稱的操作,所以最好還是能避開。

二進位資料

比較特別的就是二進位資料,如果你記得之前我們處理Lambda Request/Response當中有個屬性叫做isBase64Encoded,這即是因為當使用JSON做為資料傳輸而需要傳送二進位資料時,我們會需要進行base64的加解碼。


上一篇
Day18-概觀(八)全域次要索引(Global Secondary Index)
下一篇
Day20-概論(十)DynamoDB程式設計介面
系列文
從Java進入AWS部署RESTful API的心路歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言